package com.shxzz.easy12306.services.user.service;

import com.shxzz.easy12306.services.user.dto.req.UserLoginReqDTO;
import com.shxzz.easy12306.services.user.dto.req.UserRegisterReqDTO;
import com.shxzz.easy12306.services.user.dto.resp.UserLoginRespDTO;
import com.shxzz.easy12306.services.user.dto.resp.UserRegisterRespDTO;

/**
 * 用户登录服务接口层
 */
public interface UserLoginService {

    /**
     * 用户注册
     */
    UserRegisterRespDTO register(UserRegisterReqDTO requestParam);

    /**
     * 查询用户名是否可用
     */
    Boolean isUsernameAvailable(String username);

    /**
     * 用户登录
     */
    UserLoginRespDTO login(UserLoginReqDTO requestParam);

    /**
     * 通过 JWT Token 检查用户是否登录
     * @return 用户登录信息
     */
    UserLoginRespDTO checkLogin(String accessToken);

    /**
     * 用户登出
     */
    void logout(String accessToken);
}
